package com.cd.university.service;

import com.cd.university.common.RestResult;

/**
 * @author 陈栋
 * @create 2021/11/1 19:04
 */
public interface ProjectExamineService {

    /**
     * 查询所有的审核项目（不管是审核通过还是未通过）
     * @param pageNum 页数
     * @param pageSize 每一页个数
     * @param flag 判断是初审还是二审，1：代表初审 2：代表复审
     * @return 统一响应格式
     */
    public RestResult findAllProject(Integer pageNum,Integer pageSize,Integer flag);

    /**
     * 通过名字搜索项目
     * @param pageNum 页数
     * @param pageSize 每一页个数
     * @param name 项目名字可以模糊搜索
     * @param flag 判断是初审还是二审，1：代表初审 2：代表复审
     * @return 统一响应格式
     */
    public RestResult searchPEByName(Integer pageNum,Integer pageSize,String name,Integer flag);


    /**
     * 通过名字搜索项目
     * @param pageNum 页数
     * @param pageSize 每一页个数
     * @param departmentId 单位id
     * @param flag 判断是初审还是二审，1：代表初审 2：代表复审
     * @return 统一响应格式
     */
    public RestResult searchPEByDepartmentId(Integer pageNum,Integer pageSize,Integer departmentId,Integer flag);

    /**
     * 允许项目的初审
     * @param peId 审核id
     * @param reviewerId 审核人id
     * @param flag 判断是初审还是二审，1：代表初审 2：代表复审
     * @return 统一响应格式
     */
    public RestResult approvedExamine(Integer peId, Integer reviewerId,Integer flag);

    public void updateProjectExamine();

    /**
     * 通过单位id还有状态id搜索项目
     * @param pageNum 页数
     * @param pageSize 每一页个数
     * @param departmentId  单位id
     * @param statusId 状态id
     * @param flag 判断是初审还是二审，1：代表初审 2：代表复审
     * @return 统一响应格式
     */
    public RestResult searchPEByDeIdAndSId(Integer pageNum,Integer pageSize,Integer departmentId,Integer statusId,Integer flag);

    /**
     * 通过单位id（可选）和状态id（可选）
     * @param pageNum 页数
     * @param pageSize 每一页个数
     * @param departmentId 单位id
     * @param statusId 状态id
     * @param flag 判断是初审还是二审，1：代表初审 2：代表复审
     * @return 统一响应格式
     */
    public RestResult searchPEByStAndDe(Integer pageNum,Integer pageSize,Integer departmentId,Integer statusId,Integer flag);

//    /**
//     * 通过审核id，查询该项目的所有成员信息
//     * @param peId 审核id
//     * @return 统一响应格式
//     */
//    public RestResult searchPETeam(Integer peId);
}
